dataset <- read.csv("Household_Travel_Survey_Trips.csv")
head(dataset)
snohomish_trips <- dataset[dataset$sample_county == "Snohomish" & dataset$survey_year == 2019,]
snohomish_trips
# calculate the number of trips per person
total_trips <- tapply(snohomish_trips$trip_id, snohomish_trips$person_dim_id, sum)
# average distance per trip (for the latter use trip_path_distance).
average_distance <- tapply(snohomish_trips$trip_path_distance, snohomish_trips$person_dim_id, mean)
trips_per_person <- aggregate(trip_path_distance ~ trip_id, data = snohomish_trips, FUN = length)
colnames(trips_per_person) <- c("trip_id", "num_trips")
avg_distance_per_trip <- aggregate(trip_path_distance ~ trip_id, data = snohomish_trips, FUN = mean)
colnames(avg_distance_per_trip) <- c("trip_id", "avg_distance")
results <- merge(trips_per_person, avg_distance_per_trip, by = "trip_id")
results
person_dataset <- dataset[, c("trip_id", "age", "gender", "employment", "rent_own")]
person_results <- merge(results, person_dataset, by = "trip_id")
person_results
library(ggplot2)
# Trip Number
ggplot(person_results, aes(x = age, y = num_trips)) +
geom_boxplot(aes(fill = age)) +
labs(title = "Trip Number by Age", x = "Age", y = "Trip Number")

# Trip Number by Rent/Ownership Status
ggplot(person_results, aes(x = rent_own, y = num_trips)) +
geom_boxplot(aes(fill = rent_own)) +
labs(title = "Trip Number by Rent/Ownership Status", x = "Rent/Ownership Status", y = "Trip Number")

# Trip Distance by Rent/Ownership Status
ggplot(person_results, aes(x = rent_own, y = avg_distance)) +
geom_boxplot(aes(fill = rent_own)) +
labs(title = "Trip Distance by Rent/Ownership Status", x = "Rent/Ownership Status", y = "Trip Distance")

# Trip Distance by Gender
ggplot(person_results, aes(x = gender, y = avg_distance)) +
geom_boxplot(aes(fill = gender)) +
labs(title = "Trip Distance by Gender", x = "Gender", y = "Trip Distance")

LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQoNCmBgYHtyfQ0KZGF0YXNldCA8LSByZWFkLmNzdigiSG91c2Vob2xkX1RyYXZlbF9TdXJ2ZXlfVHJpcHMuY3N2IikgDQpoZWFkKGRhdGFzZXQpDQpgYGANCg0KDQpgYGB7cn0NCiBzbm9ob21pc2hfdHJpcHMgPC0gZGF0YXNldFtkYXRhc2V0JHNhbXBsZV9jb3VudHkgPT0gIlNub2hvbWlzaCIgJiBkYXRhc2V0JHN1cnZleV95ZWFyID09IDIwMTksXQ0KDQpzbm9ob21pc2hfdHJpcHMNCmBgYA0KDQoNCg0KYGBge3J9DQojIGNhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIHRyaXBzIHBlciBwZXJzb24NCnRvdGFsX3RyaXBzIDwtIHRhcHBseShzbm9ob21pc2hfdHJpcHMkdHJpcF9pZCwgc25vaG9taXNoX3RyaXBzJHBlcnNvbl9kaW1faWQsIHN1bSkNCg0KIyBhdmVyYWdlIGRpc3RhbmNlIHBlciB0cmlwIChmb3IgdGhlIGxhdHRlciB1c2UgdHJpcF9wYXRoX2Rpc3RhbmNlKS4NCmF2ZXJhZ2VfZGlzdGFuY2UgPC0gdGFwcGx5KHNub2hvbWlzaF90cmlwcyR0cmlwX3BhdGhfZGlzdGFuY2UsIHNub2hvbWlzaF90cmlwcyRwZXJzb25fZGltX2lkLCBtZWFuKQ0KDQpgYGANCg0KDQoNCmBgYHtyfQ0KIHRyaXBzX3Blcl9wZXJzb24gPC0gYWdncmVnYXRlKHRyaXBfcGF0aF9kaXN0YW5jZSB+IHRyaXBfaWQsIGRhdGEgPSBzbm9ob21pc2hfdHJpcHMsIEZVTiA9IGxlbmd0aCkNCg0KY29sbmFtZXModHJpcHNfcGVyX3BlcnNvbikgPC0gYygidHJpcF9pZCIsICJudW1fdHJpcHMiKQ0KDQphdmdfZGlzdGFuY2VfcGVyX3RyaXAgPC0gYWdncmVnYXRlKHRyaXBfcGF0aF9kaXN0YW5jZSB+IHRyaXBfaWQsIGRhdGEgPSBzbm9ob21pc2hfdHJpcHMsIEZVTiA9IG1lYW4pDQoNCmNvbG5hbWVzKGF2Z19kaXN0YW5jZV9wZXJfdHJpcCkgPC0gYygidHJpcF9pZCIsICJhdmdfZGlzdGFuY2UiKQ0KDQpyZXN1bHRzIDwtIG1lcmdlKHRyaXBzX3Blcl9wZXJzb24sIGF2Z19kaXN0YW5jZV9wZXJfdHJpcCwgYnkgPSAidHJpcF9pZCIpDQoNCnJlc3VsdHMNCmBgYA0KDQoNCg0KYGBge3J9DQpwZXJzb25fZGF0YXNldCA8LSBkYXRhc2V0WywgYygidHJpcF9pZCIsICJhZ2UiLCAiZ2VuZGVyIiwgImVtcGxveW1lbnQiLCAicmVudF9vd24iKV0NCg0KcGVyc29uX3Jlc3VsdHMgPC0gbWVyZ2UocmVzdWx0cywgcGVyc29uX2RhdGFzZXQsIGJ5ID0gInRyaXBfaWQiKQ0KDQpwZXJzb25fcmVzdWx0cw0KYGBgDQoNCg0KDQoNCmBgYHtyfQ0KbGlicmFyeShnZ3Bsb3QyKQ0KDQojIFRyaXAgTnVtYmVyIGJ5IEdlbmRlcg0KZ2dwbG90KHBlcnNvbl9yZXN1bHRzLCBhZXMoeCA9IGdlbmRlciwgeSA9IG51bV90cmlwcykpICsgDQogIGdlb21fYm94cGxvdChhZXMoZmlsbCA9IGdlbmRlcikpICsNCiAgbGFicyh0aXRsZSA9ICJUcmlwIE51bWJlciBieSBHZW5kZXIiLCB4ID0gIkdlbmRlciIsIHkgPSAiVHJpcCBOdW1iZXIiKQ0KYGBgDQoNCg0KDQoNCg0KDQpgYGB7cn0NCiMgVHJpcCBOdW1iZXIgYnkgUmVudC9Pd25lcnNoaXAgU3RhdHVzDQpnZ3Bsb3QocGVyc29uX3Jlc3VsdHMsIGFlcyh4ID0gcmVudF9vd24sIHkgPSBudW1fdHJpcHMpKSArIA0KICBnZW9tX2JveHBsb3QoYWVzKGZpbGwgPSByZW50X293bikpICsNCiAgbGFicyh0aXRsZSA9ICJUcmlwIE51bWJlciBieSBSZW50L093bmVyc2hpcCBTdGF0dXMiLCB4ID0gIlJlbnQvT3duZXJzaGlwIFN0YXR1cyIsIHkgPSAiVHJpcCBOdW1iZXIiKQ0KYGBgDQoNCmBgYHtyfQ0KIyBUcmlwIERpc3RhbmNlIGJ5IFJlbnQvT3duZXJzaGlwIFN0YXR1cw0KZ2dwbG90KHBlcnNvbl9yZXN1bHRzLCBhZXMoeCA9IHJlbnRfb3duLCB5ID0gYXZnX2Rpc3RhbmNlKSkgKyANCiAgZ2VvbV9ib3hwbG90KGFlcyhmaWxsID0gcmVudF9vd24pKSArDQogIGxhYnModGl0bGUgPSAiVHJpcCBEaXN0YW5jZSBieSBSZW50L093bmVyc2hpcCBTdGF0dXMiLCB4ID0gIlJlbnQvT3duZXJzaGlwIFN0YXR1cyIsIHkgPSAiVHJpcCBEaXN0YW5jZSIpDQpgYGANCg0KDQpgYGB7cn0NCiMgVHJpcCBEaXN0YW5jZSBieSBHZW5kZXINCmdncGxvdChwZXJzb25fcmVzdWx0cywgYWVzKHggPSBnZW5kZXIsIHkgPSBhdmdfZGlzdGFuY2UpKSArIA0KICBnZW9tX2JveHBsb3QoYWVzKGZpbGwgPSBnZW5kZXIpKSArDQogIGxhYnModGl0bGUgPSAiVHJpcCBEaXN0YW5jZSBieSBHZW5kZXIiLCB4ID0gIkdlbmRlciIsIHkgPSAiVHJpcCBEaXN0YW5jZSIpDQoNCmBgYA0KDQoNCg0K